#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time    : 2021/8/9 18:02
# @Author  : Samge
import re


def get_bd_info(v):
    """
    解析获取百度云盘 链接、提取码、解压密码
    :param v: 要解析的内容，例如：百度云连接：https://pan.baidu.com/share/init?surl=bZFoB6XolH3KPbSASO3czg 提取码：bc5k 解压密码:QQ40069106
    或者： 链接 https://pan.baidu.com/s/1j7CJyFEr58EiIRemaauURA 密码 ofci
    :return:
    """
    v = str(v).replace('\n', '').replace('\r', '').replace('链接 ', '链接：').replace('提取码 ', '提取码：').replace('密码 ', '密码：')
    url = get_bd_url(v).replace(' ', '')[:200]
    bd_pw = get_bd_code(v).replace(' ', '')[:50]
    jy_pw = get_jy_pw(v).replace(' ', '')[:50]
    print(f"{url} {bd_pw} {jy_pw}")
    return url, bd_pw, jy_pw


def get_bd_url(v):
    """
    获取百度云盘链接
    :param v: 要解析的内容，例如：链接：https://pan.baidu.com/s/1biYfHx58gkPNn8W7aKDD6Q  提取码：bwpr
        或者： 链接 https://pan.baidu.com/s/1j7CJyFEr58EiIRemaauURA 密码 ofci
    :return:
    """
    try:
        return re.search(r"([a-zA-z]+://[^\s]*)", v).groups()[0]
        # if '提取码' in v:
        #     return "http{}".format(re.search(r"[:： ]{0,}http(.*)提取码", v).groups()[0])
        # else:
        #     return re.search(r"([a-zA-z]+://[^\s]*)", v).groups()[0]
    except:
        return ''


def get_bd_code(v):
    """
    获取百度云盘提取码
    :param v: 要解析的内容，例如：链接：https://pan.baidu.com/s/1biYfHx58gkPNn8W7aKDD6Q  提取码：bwpr
            或者： 链接 https://pan.baidu.com/s/1j7CJyFEr58EiIRemaauURA 密码 ofci
    :return:
    """
    try:
        if '提取码' in v:
            return re.search(r"提取码[:：](.*)", v).groups()[0].replace(' ', '')[:4]
        else:
            return re.search(r"密码[:：](.*)", v).groups()[0].replace(' ', '')[:4]
    except:
        return ''


def get_jy_pw(v):
    """
    获取百度云盘解压密码
    :param v: 要解析的内容，例如：百度云连接：https://pan.baidu.com/share/init?surl=bZFoB6XolH3KPbSASO3czg 提取码：bc5k 解压密码:QQ40069106
    :return:
    """
    try:
        if '解压密码' in v:
            return re.search(r"解压密码[:：]{0,}(.*)", v).groups()[0]
        else:
            return re.search(r"密码[:：]{0,}(.*)", v).groups()[0] if '密码' in v else ''
    except:
        return ''
